﻿var instance = axios.create({ timeout: 1000 * 60, baseURL: '../' });
// 设置post请求头
// instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';  (可以不在这里封装）
// 拦截器
const { message } = antd
var params = {
    messageTest:{
        value:''
    }
}
params.messageTest.value = message
params.messageTest.value.config({
    top: `10vh`,
    duration: 2,
    maxCount: 1,
    rtl: true,
});
instance.interceptors.request.use(
    config => {

        const token = window.localStorage.getItem('token');
        token && (config.headers.Authorization = token);
        return config;
    },
    error => Promise.error(error)
)
// 响应拦截器
instance.interceptors.response.use(

    // 请求成功
    res => {
        return new Promise((resolve, reject) => {
            let successCodeList = [100, 200]
            if (successCodeList.includes(res.data.Code)) {
                resolve(res.data)
            } else {
       

                params.messageTest.value.error(res.data.Message || res.data.Msg ||'请求失败');

        
                //reject(res.data)
            }
        })
    },

    // 请求失败
    error => {
        const { response } = error;
        console.log(error, 'error')
        if (response) {
            params.messageTest.value.error('请求失败');
            return Promise.reject(response);
        } else {
            // 处理断网的情况
            // eg:请求超时或断网时，更新state的network状态
            // network状态在app.vue中控制着一个全局的断网提示组件的显示隐藏
            // 关于断网组件中的刷新重新获取数据，会在断网组件中说明

        }
    });
export default instance